1744C - Traffic Light - CodeForces Solution


binary search implementation two pointers

Please click on ads to support us..

Python Code:

t = int(input())
for i in range(t):
    n, c = input().split()
    n = int(n)
    s = input()
    if c == "g":
        print(0)
    else:
        firstGreen = -1
        r = -1
        maxminc = 0
        for j in range(len(s)):
            if s[j] == 'g' and firstGreen == -1:
                firstGreen = j
            elif s[j] == c:
                if j < r:
                    maxminc = max(maxminc, r - j)
                elif r == len(s):
                    maxminc = max(maxminc, n - j + firstGreen)
                else:
                    for i in range(j + 1, len(s)):
                        if s[i] == 'g':
                            r = i
                            break
                    if r < j + 1:
                        r = len(s)
                        maxminc = max(maxminc, n - j + firstGreen)
                    else:
                        maxminc = max(maxminc, r - j)
        print(maxminc)
                        
                
               


Comments

Submit
0 Comments
More Questions

1029A - Many Equal Substrings
1675D - Vertical Paths
1271C - Shawarma Tent
805A - Fake NP
1163A - Eating Soup
787A - The Monster
807A - Is it rated
1096A - Find Divisible
1430C - Numbers on Whiteboard
1697B - Promo
208D - Prizes Prizes more Prizes
659A - Round House
1492C - Maximum width
171B - Star
1512B - Almost Rectangle
831B - Keyboard Layouts
814A - An abandoned sentiment from past
268C - Beautiful Sets of Points
1391C - Cyclic Permutations
11A - Increasing Sequence
1406A - Subset Mex
1365F - Swaps Again
50B - Choosing Symbol Pairs
1719A - Chip Game
454B - Little Pony and Sort by Shift
1152A - Neko Finds Grapes
1719B - Mathematical Circus
1719C - Fighting Tournament
1642A - Hard Way
285C - Building Permutation